以計算數學舉例,比較單執行與多執行的差異
單執行緒
import time
data = [4, 9, 16] # 計算資料
def calc_square (nums) : # 計算平方的函式
for n in nums:
time.sleep (0.5) # 暫停 0.5 秒
print(f' {n}的平方是{n**2}')
def calc_root (nums): # 計算平方根的函式
for n in nums:
time.sleep (0.5)
print(f'{n}開根號是{n**0.5}')
start_time = time.time () # 取得目前時間
calc_square(data) #計算平方
calc_root(data) # 計算平方根
print(' 花費時間:', time.time() -start_time)
結果:
4的平方是16
.
16的開根號是4.0
花費時間:3.004206418991089
執行結果大約為3秒
threading.Thread(target=執行函式名構, args=元組型參數)
多執行緒
import threading
import time
start_time = time. time() # 取得目前時間
t1 = threading.Thread(target=calc_square, args=(data,))
t2 = threading.Thread ( target=calc_root, args=[data])
t1. start ()
t2. start ()
print('作用中的執行緒:' , threading.active_count ())
t1.join() #等待t1執行完
t2.join() #等待t2執行完
print('花費時間:' ,time.time()-start_time)
print('作用中的執行緒:' , threading.active_count ())
結果:
作用中的執行緒:3
4的平方是16
.
16的開根號是4.0
花費時間:1.503751277923584
作用中的執行緒:1
執行結果大約1.5秒
節省一半的時間